Data Storage subsystems used in data processing systems commonly comprise a device controller connected to one or more storage devices on which customer data is retained. These storage devices are commonly direct access storage devices e.g. disk drives. In recent years, such storage subsystems have become increasingly sophisticated and there is an ongoing effort in the computer industry to develop subsystems which can store large amounts of data and which also provide high speed data transfer between the attached host data processing system and the devices. A number of different interfaces have been developed for use in connecting host to controller and device and controller.
One common interface is the ANSI adopted Small Computer Systems Interface standard (SCSI), details of which can be found in ANSI specifications X3.131-1986 & SCSI/2 X3T9.2/86-109. Data storage subsystems are known where controller and device are connected by means of a SCSI bus. The SCSI interface permits multi-sector operations i.e. multiple sectors of data may be transferred to and from the device in response to a single command. This has advantages over `per sector` operation (e.g. IPI) in that it avoids the need to reinstruct the device every sector.
At some location in the subsystem, it is necessary to provide one or more data buffers which are employed temporarily to hold the data being transferred between the host and the device. The location, form and number of separate areas of buffer depend on the requirements of the particular subsystem i.e. the architecture will to an extent dictate the buffering required. In terms of cost alone, it is obviously beneficial to be able to reduce the size and number of buffers.
In order to speed up the transfer of data to and from the devices, a number of performance enhancing techniques have been developed. One such is split transfer which is described in U.S. Pat. No. 4,494,157 which reduces the latency in transferring data from a rotating storage medium e.g. magnetic disk. If sectors 1 to N are requested, the split transfer will transfer the data in two bursts--first sectors N to M, followed by sectors 1 to N-1. In U.S. Pat. No. 4,494,157 the data is held in a buffer before transmission to the host. The buffer waits until it has received the second burst of data before. sending the data up to host in ascending sector order.